package config

type UserSrvConfig struct {
	Address string `mapstructrue:"address" json:"address"`
}

type JWTConfig struct {
	SigningKey string `mapstructure:"key" json:"key"`
}

type RedisConfig struct {
	Host string `mapstructrue:"host" json:"host"`
	Port int    `mapstructrue:"port" json:"port"`
}

type MysqlConfig struct {
	Host     string `mapstructure:"host" json:"host"`
	Port     int    `mapstructure:"port" json:"port"`
	Name     string `mapstructure:"db" json:"db"`
	User     string `mapstructure:"user" json:"user"`
	Password string `mapstructure:"password" json:"password"`
}

type LogConfig struct {
	Level      string `mapstructrue:"level" json:"level"`
	Filename   string `mapstructrue:"filename" json:"filename"`
	MaxSize    int    `mapstructrue:"maxsize" json:"maxsize"`
	MaxAge     int    `mapstructrue:"max_age" json:"max_age"`
	MaxBackups int    `mapstructrue:"max_backups" json:"max_backups"`
}

type EsConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
}

type ServerConfig struct {
	ServerName      string        `mapstructure:"name" json:"servername"`
	Host            string        `mapstructrue:"host" json:"host"`
	Port            int           `mapstructure:"port" json:"port"`
	Tags            []string      `mapstructure:"tags" json:"tags"`
	JWTInfo         JWTConfig     `mapstructure:"jwt" json:"jwt"`
	MysqlConfigInfo MysqlConfig   `mapstructure:"mysql" json:"mysql"`
	RedisConfigInfo RedisConfig   `mapstructure:"redis" json:"redis"`
	LogConfig       LogConfig     `mapstructure:"logconfig" json:"logconfig"`
	UserService     UserSrvConfig `mapstructure:"user_service" json:"user_service"`
	Image           string        `mapstructure:"images" json:"images"`
	EsConfig        EsConfig      `mapstructure:"es" json:"es"`
}
